package org.samcolon.eeexplore.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * 菜单权限表
 *
 * @TableName sys_menu
 */
@TableName(value = "sys_menu")
@Data
@AllArgsConstructor
public class SysMenu implements Serializable {

    public enum NormalEnable {
        /**
         * 停用
         */
        disable(0),
        /**
         * 启用
         */
        enable(1);
        private int value;

        NormalEnable(int value) {
            this.value = value;
        }
    }

    /**
     * 菜单ID
     */
    @TableId(value = "menu_id", type = IdType.AUTO)
    private Integer menuId;

    /**
     * 应用id 对应sys_application 1 代表pigx本系统用户中心
     */
    @TableField(value = "application_id")
    private Integer applicationId;

    /**
     * 菜单名称
     */
    @TableField(value = "name")
    private String name;

    /**
     * 后端权限认证
     */
    @TableField(value = "permission")
    private String permission;

    /**
     * 前端路由
     */
    @TableField(value = "path")
    private String path;

    /**
     * 父菜单ID
     */
    @TableField(value = "parent_id")
    private Integer parentId;

    /**
     * 
     */
    @TableField(value = "icon")
    private String icon;

    /**
     * 排序值
     */
    @TableField(value = "sort")
    private Integer sort;

    /**
     * 
     */
    @TableField(value = "keep_alive")
    private Integer keepAlive;

    /**
     * 类型，0菜单，1按钮
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 是否删除  默认0：否  1: 是
     */
    @TableField(value = "del_flag")
    private Integer delFlag;

    /**
     * 文本套餐 1-标准 2-高级 3-旗舰
     */
    @TableField(value = "robot_version")
    private Integer robotVersion;

    /**
     * 默认菜单 1-默认不支持删除 0-否，可删除
     */
    @TableField(value = "default_flag")
    private Integer defaultFlag;

    /**
     * 1-公有 0-私有
     */
    @TableField(value = "public_flag")
    private Integer publicFlag;

    /**
     * 
     */
    @TableField(value = "url")
    private String url;

    /**
     * url打开方式 1-项目内部窗口 2-替换当前窗口 3-打开新窗口
     */
    @TableField(value = "url_type")
    private Integer urlType;

    /**
     * 配置
     */
    @TableField(value = "configuration")
    private String configuration;

    /**
     * 视图路径
     */
    @TableField(value = "view_path")
    private String viewPath;

    /**
     * 菜单标题
     */
    @TableField(value = "title")
    private String title;

    /**
     * 重定向地址
     */
    @TableField(value = "redirect")
    private String redirect;

    /**
     * 状态 1-开启 0-关闭
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 普通用户默认授权 1-普通账号默认授权 0-普通账号默认不授权 -1为老数据，不做处理
     */
    @TableField(value = "normal_enable")
    private Integer normalEnable;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}